package com.gitee.huanminabc.jmapstruct;

import org.mapstruct.InheritInverseConfiguration;

import java.util.List;
import java.util.stream.Stream;

/**
 * PO和DTO互转的基本接口
 *
 * @date 2023年02月24日
 */
public interface BasePDConverter<PO,DTO>  extends MapperConverter{

    /**
     * 映射同名属性
     */
    DTO toDTO(PO var1);

    /**
     * 反向，映射同名属性
     */
    @InheritInverseConfiguration(name = "toDTO")
    PO fromDTO(DTO var1);

    /**
     * 映射同名属性，集合形式
     */
    List<DTO> toDTO(List<PO> var1);

    /**
     * 反向，映射同名属性，集合形式
     */
    List<PO> fromDTO(List<DTO> var1);

    /**
     * 映射同名属性，集合流形式
     */
    List<DTO> toDTO(Stream<PO> stream);

    /**
     * 反向，映射同名属性，集合流形式
     */
    List<PO> fromDTO(Stream<DTO> stream);
}
